﻿using TianShu.Domain;
using TianShu.Service.Dtos;
using System;
using System.Collections.Generic;
using System.Text;
using TianShu.Domain.Entities;

namespace TianShu.Service.Contracts.Service.Crud
{
    public interface ICrudService<TKey, TListDto, TCreateDto, TUpdateDto, TDetailDto> :
                                    IQueryService<TListDto, TDetailDto, TKey>,
                                    IInsertService<TCreateDto, TDetailDto>,
                                    IUpdateService<TKey, TUpdateDto, TDetailDto>,
                                    IDeleteService<TKey>
         where TListDto : class, IEntityDto
    {
    }
    public interface ICrudService<TKey, TListDto, TCreateDto, TUpdateDto> : ICrudService<TKey, TListDto, TCreateDto, TUpdateDto, TListDto>
         where TListDto : class, IEntityDto
    {
    }
    public interface ICrudService<TKey, TListDto, TCreateUpdateDto> : ICrudService<TKey, TListDto, TCreateUpdateDto, TCreateUpdateDto, TListDto>
         where TListDto : class, IEntityDto
    {
    }
    public interface ICrudService<TKey, TDto> : ICrudService<TKey, TDto, TDto, TDto, TDto>
         where TDto : class, IEntityDto
    {
    }
}
